public class Test213 {
    /**
     * 打家劫舍II
     * @param args
     */
    public static void main(String[] args) {
        Test213 test213 = new Test213();
        int[] ints = {1,2};
        test213.test(ints);
        System.out.println(ints[0]);
    }

    public void test(int[] nums){
        nums[0]=3;
    }

    /**
     * 思想：maxValue = Math.max(dp[i-2]+nums[i],dp[i-1])
     * @param nums
     * @return
     */
    public int rob(int[] nums) {
        if(nums.length==1)
            return nums[0];
        if(nums.length==2)
            return Math.max(nums[0],nums[1]);
        return Math.max(helper(nums,0,nums.length-2),helper(nums,1,nums.length-1));
    }

    public int helper(int[] nums,int start,int end){
        int[] dp = new int[nums.length];
        if(nums.length==2)
            return Math.max(nums[0],nums[1]);
        dp[0] = nums[0];
        dp[1] = Math.max(nums[0],nums[1]);
        for (int i = 2; i < nums.length; i++) {
            dp[i]=Math.max(dp[i-2]+nums[i],dp[i-1]);
        }
        return dp[nums.length-1];
    }
}
